package com.itawei.d2_genericdemowork;

import java.util.ArrayList;

/**
 * 泛型的继承和通配符
 * 注意：
 *     泛型不具备继承性，但是数据具备继承性
 */
public class Test {
    public static void main(String[] args) {
        ArrayList<Animal> list1 = new ArrayList<>();
        ArrayList<Cat> list2 = new ArrayList<>();
        ArrayList<LihuaCat> list3 = new ArrayList<>();
        ArrayList<BosiCat> list4 = new ArrayList<>();
        ArrayList<Dog> list5 = new ArrayList<>();
        ArrayList<HskiDog> list6 = new ArrayList<>();
        ArrayList<TaidiDog> list7 = new ArrayList<>();
        keepPet3(list1);
        keepPet(list2);
        keepPet(list3);
        keepPet(list4);
        keepPet2(list5);
        keepPet2(list6);
        keepPet2(list7);
    }

    //定义一个方法用于饲养动物
    //要求1：该方法能养所有品种的猫，但是不能养狗
    public static void keepPet(ArrayList<? extends Cat> list){

    }
    //要求2：该方法能养所有品种的狗，但是不能养猫
    public static void keepPet2(ArrayList<? extends Dog> list){

    }
    //要求3：该方法能养所有的动物，但是不能传递其他类型
    public static void keepPet3(ArrayList<? extends Animal> list){

    }
}
